package com.settlement.system.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.model.entity.common.BaseModel;
import com.settlement.system.model.entity.common.TblOrderAuditBillDtl;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 退款稽核单据主表
 * @author xiaochuan
 * @since 2020-06-28
 */
@Data
public class TblOrderAuditBillVo extends BaseModel implements Serializable {

    /**
     * 责任方编码
     */
    private String responsibleNo;

    /**
     * 责任方
     */
    private String responsibleName;

    /**
     * 损失原因编码
     */
    private String lossReasonNo;

    /**
     * 损失原因
     */
    private String lossReasonName;

    /**
     * 单据状态编码
     */
    private String orderBillStatusNo;
    /**
     * 订单稽核单据状态名称
     */
    @ApiModelProperty(value = "订单稽核单据状态名称")
    private String orderBillStatusName;

    /**
     * 单据编码
     */
    @ApiModelProperty(value = "单据编码")
    private String billNo;

    /**
     * 订单稽核主类别
     */
    @ApiModelProperty(value = "订单稽核大类")
    private String orderAuditMainName;

    /**
     * 订单稽核明细类别
     */
    @ApiModelProperty(value = "订单稽核明细")
    private String orderAuditDtlName;

    /**
     * 优购单号
     */
    @ApiModelProperty(value = "优购主订单号")
    private String refBillNo;


    /**
     * 原始外部订单号
     */
    @ApiModelProperty(value = "原始外部订单号")
    private String spOrderNo;

    /**
     * 订单来源
     */
    @ApiModelProperty(value = "订单来源")
    private String orderSource;

    /**
     * 订单三级来源编码
     */
    @ApiModelProperty(value = "订单三级来源编码")
    private String threeLevelChannelNo;

    /**
     * 订单三级来源名称
     */
    @ApiModelProperty(value = "订单三级来源名称")
    private String threeLevelChannelName;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date orderDate;

    /**
     * 业务日期
     */
    @ApiModelProperty(value = "业务日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date businessDate;

    /**
     * 差异数量
     */
    @ApiModelProperty(value = "差异数量")
    private Integer diffQty;

    /**
     * 应收账款余额
     */
    @ApiModelProperty(value = "应收账款余额")
    private BigDecimal receivableAmount;

    /**
     * 异常售后未提报金额
     */
    @ApiModelProperty(value = "异常售后未提报金额")
    private BigDecimal diffAbnormalAmount;


    /**
     * 客服初步核实人名称
     */
    @ApiModelProperty(value = "客服初步核实人名称")
    private String firstServicePersonName;

    /**
     * 账簿简称
     */
    @ApiModelProperty(value = "账簿简称")
    private String companySubject;

    /**
     * 渠道
     */
    @ApiModelProperty(value = "渠道")
    private String channelName;

    /**
     * NC店铺名称
     */
    @ApiModelProperty(value = "NC店铺名称")
    private String ncShopName;

    /**
     * 店铺账号
     */
    @ApiModelProperty(value = "店铺账号")
    private String shopAccount;

    /**
     * 责任部门核实人
     */
    @ApiModelProperty(value = "责任部门核实人")
    private String responsiblePerson;


    /**
     * 是否有操作权限
     */
    @ApiModelProperty(value = "是否有操作权限")
    private boolean isAuth;

    /**
     * 提报部门
     * "020客服","O2O_CUSTOMER_SERVICE
     * 物流部","LOGISTICS_DEPT
     * 电商客服","E_COMMERCE_CUSTOMER_SERVICE
     * 品牌客服","BRAND_CUSTOMER_SERVICE
     * 售后","1"
     * 物流","2"
     * "商家","3
     * 地区","4
     * 集团物流","5
     * 电商客服","6
     * 集团客服","7
     */
    @ApiModelProperty(value = "提报部门")
    private String followUpResponsibility;

    /**
     * 单据核查日志
     */
    private List<TblOrderAuditBillDtl> tblOrderAuditBillDtl;


    /**
     * 收退款信息
     */
    private List<ReceiveRefundInfo> receiveRefundInfo;


    /**
     * 发退货信息
     */
    private List<SendToReturnInfo> sendToReturnInfo;

    /**
     * 财务调账信息
     */
    private List<FinAdjustAccount> finAdjustAccount;

}
